In software engineering, multi-tier architecture (often referred to as n-tier architecture) is a client-server architecture in which the presentation, the application processing, and the data management are logically separate processes. For example, an application that uses middleware to service data requests between a user and a database employs multi-tier architecture. The most widespread use of multi-tier architecture is the three-tier architecture.
Three-tier is a client-server architecture in which the user interface, functional process logic (“business rules”), computer data storage and data access are developed and maintained as independent modules, most often on separate platforms. It was developed by John J. Donovan in Open Environment Corporation (OEC), a tools company he founded in Cambridge, Mass. A schematic model of three-tier architecture is shown in FIG. 1.
The three-tier model is a software architecture and a software design pattern. Apart from the usual advantages of modular software with well-defined interfaces, the three-tier architecture is intended to allow any of the three tiers to be upgraded or replaced independently in response to changes in requirements or technology. For example, a change of operating system in the presentation tier would only affect the user interface code.
Typically, the user interface runs on a desktop PC or workstation and uses a standard graphical user interface, functional process logic may consist of one or more separate modules running on a workstation or application server, and an RDBMS on a database server or mainframe contains the computer data storage logic. The middle tier may be multi-tiered itself (in which case the overall architecture is called an “n-tier architecture”).
Three-tier architecture has the following three tiers:                Presentation tier. This is the topmost level of the application. The presentation tier displays information related to such services as browsing merchandise, purchasing, and shopping cart contents. It communicates with other tiers by outputting results to the browser/client tier and all other tiers in the network.        Application tier (business logic, logic tier, data access tier, or middle tier). The logic tier is pulled out from the presentation tier and, as its own layer, it controls an application's functionality by performing detailed processing.        Data tier. This tier consists of database servers. Here information is stored and retrieved. This tier keeps data neutral and independent from application servers or business logic. Giving data on its own tier also improves scalability and performance.        
Whereas the architecture of the application consists of three tiers, the application itself consists of two parts: executable code and data storage. The executable code comprises the actual code which could be either compiled source-code installed as executables, or script code that is parsed during run-time. The data storage comprises the database that contains the actual data.
The executable code obvious purpose is to build the GUI for the application. The data-storage is obviously used to store the actual data. Data- and/or Business-logic can either be included in the executable code (mainly Business-Logic) or the database (Data-logic).
This approach has various disadvantages. For example, after changes being made to the application, the application has to be re-distributed as a new version. While the executables or script-code usually belongs together, complete sets of code should be kept together for each version. When customization to the application is done, the distribution becomes even more difficult, especially when customization is done by multiple development parties. Further, each customization can only be delivered once it is completed, if not to complicate the distribution even more. In-between delivery to evaluate the results can not be done.
Various systems exist that strive to address this situation in one way or another. For example, OpenRules available at <http://openrules.com/> is a Business Decision Management System oriented to subject matter experts allowing them to create, test, and maintain enterprise-class decision support applications. RuleLab.net at <http://www.rulelab.net/> offers a Web-based system for designing and implementing the business rules that operate on an application's XML data. The article ‘Complex Business Rules on your ASP.NET Website in Several Minutes’ by The Code Project at <http://www.codeproject.com/Articles/220699/Complex-business-rules-on-your-ASP-NET-website-in> provides a basic ASP.NET program that allows a programmer to change business rules without having to recompile the entire code base.
U.S. Pat. No. 6,766,298 provides a unified web-based voice messaging system with a voice application control between a web browser and an application server via an hypertext transport protocol (HTTP) connection on an Internet Protocol (IP) network. The web browser receives an HTML page from the application server having an XML element that defines data for an audio operation to be performed by an executable audio resource. The application server executes the voice-enabled web application by runtime execution of extensible markup language (XML) documents that define the voice-enabled web application to be executed. The application server, in response to receiving a user request from a user, accesses a selected XML page that defines at least a part of the voice application to be executed for the user. The application server then parses the XML page, and executes the operation describer by the XML page.
US 2006/0048097 discloses a system and method for developing web services that includes three frameworks: a Design Time Framework, an Object-Service Framework, and a Run Time Framework. In the Design Time Framework, the system and method includes receiving a schema in a descriptive markup language from a user and generating source code artifacts in an object oriented programming language based on the schema. In the Object-Service Framework, the system and method includes relating the generated source code artifacts to a set of pre-built runtime services. Finally, in a Run Time Framework, the system and method includes providing the set of runtime services, wherein the runtime services interact with the generated source code artifacts through the relationship defined by the Object-Service Framework.
US20120089933 discloses a digital content authoring tool for authoring digital content, including animation, without the need to understand or access computer code. Each animation can be controlled by an action, and the actions can be tied to a time axis for execution. By relating actions to a time axis, animations based on the actions can be more easily viewed and reviewed.
None of the discussed disclosures adequately address all needs in the market, usually because they are limited to the User Interface or Business Logic and therefore do not target the mismatch with the three-tier model, or rely on other (third party) components. There thus is a need for an improved system for generating an On-Demand reconfigurable Web application that provides create/read/update/delete-functionality on data managed in one or more external data sources.